/*
 * Author: 李波(Edwin Lee)
 * Date: 2024-07-07 20:12:38
 * FilePath: /code/C/Atoi/main.c
 * LastEditTime: 2024-08-02 12:52:18
 * version: 1.0
 * Description: 
 */
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
int main() {
	//atoi将字符串转换为数字，首字符为+-\n\r\t或者数字0~9号可以转
	// 字符前有空格会跳过空格
	

	//测试一：测试atoi前面有+-号是否会获得正确的数,结果是可以的
	char str1[] = "-12345";
	int num1 = atoi(str1);
	printf("%d\n", num1);

	//测试二：测试atoi前面有空格和0是否可以获得正确的数,结果是可以的
	char str2[] = " +0000000000000000000000000006789";
	int num2 = atoi(str2);
	printf("%d\n", num2);

	//测试三：第一个字符为\n\r是否可以获得数据,是可以的
	char str3[] = "\n\r\t6789";
	int num3 = atoi(str3);
	printf("%d\n", num3);

	//测试四：测试+-0
	char str4[] = " -0";
	int num4 = atoi(str4);
	printf("%d\n", num4);

	//测试五：测试超出int范围的数能否获得结果int32_t范围：-2147483648~2147483647
	//结果表明大于最大值时结果是最大值2147483647，小于最小值时结果是最小值-2147483648
	char str5[] = "214748364899";
	int num5 = atoi(str5);
	printf("test5:%d\n", num5);

	//测试六：测试atoll同测试五的结果int64_t范围：-9223372036854775808~9223372036854775807
	//结果表明大于最大值时结果是最大值9223372036854775807，小于最小值时结果是最小值-9223372036854775808
	char str6[] = "-92233720368547758079";
	long long num6 = atoll(str6);
	printf("test6:%lld\n", num6);
	return 0;

}